﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Model1;

namespace SECOMPV2.Controllers
{
    public class WaardeController : Controller
    {
        private Model1Container db = new Model1Container();

        //
        // GET: /Waarde/

        public ActionResult Index(string id)
        {
            string zoektext = id;
            
            List<Groep> groepen = db.Groeps.ToList();
            List<int> gevonden = new List<int>();

            /*
            if(zoektext != null)
            {
                foreach(Groep groep in groepen)
                    foreach (Specificatie item in groep.Specificaties)
                        for (int i = 0; i < item.Waardes.Count; i++)
                            if (item.Waardes.ToList()[i].Naam.Contains(zoektext))
                                if(!gevonden.Contains(i))
                                    gevonden.Add(i);

                foreach (Groep groep in groepen)
                    foreach (Specificatie item in groep.Specificaties)
                        for (int i = (item.Waardes.Count - 1); i > -1; i--)
                            if(!gevonden.Contains(i))
                                item.Waardes.Remove(item.Waardes.ToList()[i]);
            }
            */
            return View(groepen);
        }

        //
        // GET: /Waarde/Details/5

        public ActionResult Details(int id = 0)
        {
            Waarde waarde = db.Waardes.Find(id);
            if (waarde == null)
            {
                return HttpNotFound();
            }
            return View(waarde);
        }

        public ActionResult Zoeken()
        {
            List<Groep> groepen = db.Groeps.ToList();
            if (groepen == null)
            {
                return HttpNotFound();
            }
            ViewBag.Groepen = groepen;
            return View(db.Waardes.ToList()[0]);
        }

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Zoeken(string[] Naam)
        {
            List<Groep> groepen = db.Groeps.ToList();
            List<int> gevonden = new List<int>();
            if (ModelState.IsValid)
            {
                if (groepen == null)
                {
                    return HttpNotFound();
                }
                
                ViewBag.Groepen = Waarde.Zoeken(groepen,gevonden,Request);
            }
            return View(db.Waardes.ToList()[0]);
        }

        //
        // GET: /Waarde/Create

        public ActionResult Create()
        {
            ViewBag.Groepen = db.Groeps;
            return View();
        }

        //
        // POST: /Waarde/Create

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create(string[] Naam)
        {
            if (ModelState.IsValid)
            {
                Waarde.Add(Naam, db);
                return RedirectToAction("Index");
                 
            }

            return View(/*waarde*/);
        }

        //
        // GET: /Waarde/Edit/5

        public ActionResult Edit(int id = 0)
        {
            Waarde waarde = db.Waardes.Find(id);
            if (waarde == null)
            {
                return HttpNotFound();
            }
            return View(waarde);
        }

        //
        // POST: /Waarde/Edit/5

        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Edit(Waarde waarde)
        {
            if (ModelState.IsValid)
            {
                db.Entry(waarde).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(waarde);
        }

        //
        // GET: /Waarde/Delete/5

        public ActionResult Delete(int id = 0)
        {
            Waarde waarde = db.Waardes.Find(id);
            if (waarde == null)
            {
                return HttpNotFound();
            }
            return View(waarde);
        }

        //
        // POST: /Waarde/Delete/5

        [HttpPost, ActionName("Delete")]
        [ValidateAntiForgeryToken]
        public ActionResult DeleteConfirmed(int id)
        {
            Waarde waarde = db.Waardes.Find(id);
            db.Waardes.Remove(waarde);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        protected override void Dispose(bool disposing)
        {
            db.Dispose();
            base.Dispose(disposing);
        }
    }
}